////////////////////////////////////////////////////////////////////////
// Last svn revision: $Id:  $ 
////////////////////////////////////////////////////////////////////////
/// \class drow::test::TMatrixOp
///
/// \brief Tests the Matrix Operations  
///
/// \author Douglas Richardson         <douglas.richardson@swyrich.com>
///
/// REVISION HISTORY:\n
/// 	22/03/12 : Douglas Richardson - New File \n
///   24/03/12 : Douglas Richardson - Added new test functions
///
/// \details This class runs through all the default matrix operations.
///
////////////////////////////////////////////////////////////////////////

#ifndef __drow_test_AMatrixOp__
#define __drow_test_AMatrixOp__

#include <assert.h>
#include "MLCTest/ATestClass.hh"
#include "MLC/DefaultMatrixOp.hh"
#include "MLC/MatrixOp.hh"

namespace drow {
namespace test {

class TMatrixOp : public ATestClass {

public:
    TMatrixOp() : ATestClass("MatrixOp") {}
    ~TMatrixOp() {}
    void TestClass();
    
private:
    MLC::Matrix CreateNewMatrix(double* data, int rows, int cols);
    void TestAdd();
    void TestSubtract();
    void TestMultiply();
    void TestDot();
    void TestCross();
    void TestNorm();    
};

}
}

#endif